https://leetcode.cn/problems/que-shi-de-shu-zi-lcof/description/?envType=list&envId=Sh5en9wy
//class Solution {
//public:
//    int takeAttendance(vector<int>& records) {
//
//        int n = records.size();
//        int l = 0, r = n - 1;
//        while (l < r)
//        {
//            int mid = l + (r - l) / 2;
//            if (records[mid] == mid) l = mid + 1;
//            else r = mid;
//        }
//        return l == records[l] ? l + 1 : l;
//    }
//};

https://leetcode.cn/problems/find-minimum-in-rotated-sorted-array/description/
//class Solution {
//public:
//    int findMin(vector<int>& nums) {
//
//        int n = nums.size();
//        int l = 0, r = n - 1;
//        int x = nums[r];
//
//        while (l < r) {
//            int mid = l + (r - l) / 2;
//            if (nums[mid] > x) {
//                l = mid + 1;
//            }
//            else {
//                r = mid;
//            }
//        }
//
//        return nums[l];
//
//    }
//};

https://leetcode.cn/problems/find-peak-element/description/
//class Solution {
//public:
//    int findPeakElement(vector<int>& nums) {
//        int n = nums.size();
//        int l = 0, r = n - 1;
//
//        while (l < r) {
//            int mid = l + (r - l) / 2;
//            if (nums[mid] < nums[mid + 1]) {
//                l = mid + 1;
//            }
//            else {
//                r = mid;
//            }
//        }
//        return l;
//    }
//};

https://leetcode.cn/problems/B1IidL/description/
//class Solution {
//public:
//    int peakIndexInMountainArray(vector<int>& arr) {
//        int n = arr.size();
//        int l = 0, r = n - 1;
//        while (l < r) {
//            int mid = l + (r - l) / 2;
//            if (arr[mid] < arr[mid + 1]) {
//                l = mid + 1;
//            }
//            else {
//                r = mid;
//            }
//        }
//
//        return l;
//    }
//};